<?php

use Illuminate\Http\Request;

/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/

$api = app('Dingo\Api\Routing\Router');

$api->version('v1', [
    'namespace' => 'App\Http\Controllers\Api'
], function ($api) {

    $api->group([
        'middleware' => 'api.throttle',                          //接口频率限制
        'limit' => config('api.rate_limits.sign.limit'),    //次数
        'expires' => config('api.rate_limits.sign.expires') //分钟
    ], function ($api) {
        //图片验证码
        $api->post('captchas', 'CaptchasController@store')->name('api.captchas.store');
        //短信验证码
        $api->post('verificationCodes', 'VerificationCodesController@store')->name('api.verificationCodes.store');
        //用户注册
        $api->post('users', 'UsersController@store')
            ->name('api.users.store');

        //第三方登录
        $api->post('socials/{social_type}/authorizations', 'AuthorizationsController@socialStore')
            ->name('api.socials.authorizations.store');
    });

});

$api->version('v2', [
    'namespace' => 'App\Http\Controllers\api\v2'
], function ($api) {
    $api->get('topics/{id}', 'ElasticSearchController@show')->name('api.topics.show');
    $api->post('topics', 'ElasticSearchController@store')->name('api.topics.store');
    $api->put('topics/{id}', 'ElasticSearchController@update')->name('api.topics.update');
    $api->delete('topics/{id}', 'ElasticSearchController@destroy')->name('api.topics.destroy');
    $api->get('topics', 'ElasticSearchController@index')->name('api.search');
});
